# frozen_string_literal: true

module Jobs
  class FixInvalidGravatarUploads < ::Jobs::Onceoff
    def execute_onceoff(args)
      Upload
        .where(original_filename: "gravatar.png")
        .find_each do |upload|
          # note, this still feels pretty expensive for a once off
          # we may need to re-evaluate this
          extension =
            begin
              FastImage.type(Discourse.store.path_for(upload))
            rescue StandardError
              nil
            end
          current_extension = upload.extension

          if extension.to_s.downcase != current_extension.to_s.downcase
            upload&.user&.user_avatar&.update_columns(last_gravatar_download_attempt: nil)
          end
        end
    end
  end
end
